package com.zsrt.javaweb.ch01;


import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class ArithmeticCalculateTest {
	
	
	/**
	 * 在div01中证明后置通知起作用
	 * 在div01中证明返回通知起作用 拿到了目标对象的方法执行的结果
	 * @throws Exception
	 */
	@Test
	public void div01() throws Exception {
		
		//1 创建spring的 ioc容器
		ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		//2 从ioc容器中获取bean的实例  当类实现了接口的时候 必须用接口去接收 否则会找不到类
		ArithmeticCalculate ac = ctx.getBean(ArithmeticCalculate.class);
		//3 调用bean的方法 加法
		int aa = ac.div(20, 3);
		System.out.println("aa="+aa);
		ctx.close();
	}	
	
	
	/**
	 * 在div02中证明 在目标方法发生异常也会执行后置通知
	 * 在div02中证明 如果目标方法出现异常  则返回通知不会执行
	 * @throws Exception
	 */
	@Test
	public void div02() throws Exception {
		
		//1 创建spring的 ioc容器
		ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		//2 从ioc容器中获取bean的实例  当类实现了接口的时候 必须用接口去接收 否则会找不到类
		ArithmeticCalculate ac = ctx.getBean(ArithmeticCalculate.class);
		
		//System.out.println(ac.getClass().getName());
		
		//3 调用bean的方法 加法
		ac.div(20, 0);
		ctx.close();
	}	

}
